package ru.st.selenium;

import org.testng.annotations.*;

import static org.junit.Assert.*;
import ru.st.selenium.model.Dictionary;
import ru.st.selenium.model.EditFieldTypesObject;
import ru.st.selenium.pages.TestBase;

public class CreateDictionary extends TestBase {

	// BeforeMethod выполняется ПЕРЕД каждым тестовым методом в этом классе.
	@BeforeMethod
	public void MayBeLogout() {
		if (app.getUserHelper().isNotLoggedIn()) {
			return;
		}
		app.getUserHelper().logout();
	}

	// Add Create Dictionary
	@Test
	public void AddCreateDictionary() throws Exception {
		// Создаем набор тестовых данных (объект предметной области)
		Dictionary dictionary  = new Dictionary()
				.setDictionaryName("SObject Справочники" + " " + randomString(10));
		
		EditFieldTypesObject editfieldtypestable = new EditFieldTypesObject()
				// 1. СТРОКА
				.setNameFieldTypesObject("SСтрока")
				.setIdentifierFieldTypesObject("SSTROKA")
				// 2. ТЕКСТ
				.setNameFieldTypesObject1("SТекст")
				.setIdentifierFieldTypesObject1("STEXT")
				// 3. ЦЕЛОЕ
				.setNameFieldTypesObject2("SЦелое")
				.setIdentifierFieldTypesObject2("SCHELOE")
				// 4. ВЕЩЕСТВЕННОЕ
				.setNameFieldTypesObject3("SВещественное")
				.setIdentifierFieldTypesObject3("SVESHESTVENNOE")
				// 5. ДАТА
				.setNameFieldTypesObject4("SДата")
				.setIdentifierFieldTypesObject4("SDATA")
				// 6. ФАЙЛ
				.setNameFieldTypesObject5("SФайл")
				.setIdentifierFieldTypesObject5("SFSLES")
				// 7. ССЫЛКА НА СПРАВОЧНИК
				.setNameFieldTypesObject6("SСсылка на спр-к")
				.setIdentifierFieldTypesObject6("SSSSLKA")
				// 8. МНОЖЕСТВЕННАЯ ССЫЛКА
				.setNameFieldTypesObject7("SМножественная ссылка")
				.setIdentifierFieldTypesObject7("SMNOJS")
				// 9. ЛОГИЧЕСКОЕ
				.setNameFieldTypesObject8("SЛогический")
				.setIdentifierFieldTypesObject8("SBOOLEAN")
				// 10. ТЕЛЕФОН
				.setNameFieldTypesObject9("SТелефон")
				.setIdentifierFieldTypesObject9("SPHONE")
				// 11. EMASL
				.setNameFieldTypesObject10("SEmail")
				.setIdentifierFieldTypesObject10("SEMASL")
				// 12. ИЗОБРАЖЕНИЕ
				.setNameFieldTypesObject11("SИзображение")
				.setIdentifierFieldTypesObject11("SSMAGES")
				// 13. ЦВЕТ
				.setNameFieldTypesObject12("SЦвет")
				.setIdentifierFieldTypesObject12("SCOLOR");

		// далее выше подготовленные тестовые данные используем
		app.getNavigationHelper().maximizeWindow();
		app.getUserHelper().loginAs(ADMIN);
		assertTrue(app.getUserHelper().isLoggedIn());
		app.getTypesObjectHelper().createDictionary(dictionary); // Добавление объекта - Справочники
																	
		app.getEditFieldsTypesObjectHelper().addFieldsTypesTableHelper(
				editfieldtypestable); // Добавление всех типов полей в объект - Справочники
		app.getTypesObjectHelper().verifyCreateObject(); // Проверка отображения объекта в гриде Справочника
		app.getUserHelper().logout();
		assertTrue(app.getUserHelper().isNotLoggedIn());
	}

}
